home *** CD-ROM | disk | FTP | other *** search
/ Your Web Site Creator / Your Web Site Creator.iso / WebSite / data1.cab / Program_Executable_Files / Classes / FADECAN2.CLA (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-13  |  5.3 KB  |  268 lines

  1. import java.applet.Applet;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Graphics;
  7. import java.awt.Image;
  8. import java.awt.image.ImageObserver;
  9. import java.awt.image.MemoryImageSource;
  10. import java.awt.image.PixelGrabber;
  11.  
  12. public class FadeCanvas2 extends Canvas implements Runnable {
  13.    Thread appThread;
  14.    Image osImage;
  15.    Graphics osg;
  16.    Color bkColor;
  17.    Image bkImage;
  18.    Image image;
  19.    int[] imagePixels;
  20.    int imageWidth;
  21.    int imageHeight;
  22.    Image displayImage;
  23.    int fadeInSteps;
  24.    int fadeOutSteps;
  25.    int showTime;
  26.    int hideTime;
  27.    int fadeInTime;
  28.    int fadeOutTime;
  29.    int delayTime;
  30.    int currFadeInStep;
  31.    int currFadeOutStep;
  32.    int showMode;
  33.    int fadeMode;
  34.    int lastFadeMode = 6;
  35.    static final int FADE_UP = 0;
  36.    static final int FADE_DOWN = 1;
  37.    static final int FADE_LEFT = 2;
  38.    static final int FADE_RIGHT = 3;
  39.    static final int FADE_CENTER_BOTH = 4;
  40.    static final int FADE_CENTER_VERT = 5;
  41.    static final int FADE_CENTER_HORIZ = 6;
  42.    static final int SHOW_HIDE = 0;
  43.    static final int SHOW_FADE_IN = 1;
  44.    static final int SHOW_FADE_OUT = 2;
  45.    static final int SHOW_SHOW = 3;
  46.  
  47.    public FadeCanvas2(Applet var1, int var2) {
  48.       this.GetParameters(var1, var2);
  49.       this.Initialize();
  50.    }
  51.  
  52.    void GetParameters(Applet var1, int var2) {
  53.       String var3 = var1.getParameter("fadeBkColor" + var2);
  54.       this.bkColor = AppletParam2.GetColor(var3, (Color)null);
  55.       if (this.bkColor != null) {
  56.          ((Component)this).setBackground(this.bkColor);
  57.       }
  58.  
  59.       var3 = var1.getParameter("fadeBkImage" + var2);
  60.       this.bkImage = var1.getImage(var1.getCodeBase(), var3);
  61.       var3 = var1.getParameter("fadeImage" + var2);
  62.       this.image = AppletParam2.GetImage(var1, var3);
  63.       var3 = var1.getParameter("fadeInTime" + var2);
  64.       this.fadeInTime = AppletParam2.GetInt(var3, 1000);
  65.       var3 = var1.getParameter("fadeInSteps" + var2);
  66.       this.fadeInSteps = AppletParam2.GetInt(var3, 5);
  67.       var3 = var1.getParameter("fadeHideTime" + var2);
  68.       this.hideTime = AppletParam2.GetInt(var3, 1000);
  69.       var3 = var1.getParameter("fadeShowTime" + var2);
  70.       this.showTime = AppletParam2.GetInt(var3, 1000);
  71.       var3 = var1.getParameter("fadeOutTime" + var2);
  72.       this.fadeOutTime = AppletParam2.GetInt(var3, 1000);
  73.       var3 = var1.getParameter("fadeOutSteps" + var2);
  74.       this.fadeOutSteps = AppletParam2.GetInt(var3, 5);
  75.       this.delayTime = this.hideTime;
  76.       this.showMode = 0;
  77.    }
  78.  
  79.    public void Start() {
  80.       this.appThread = new Thread(this);
  81.       this.appThread.start();
  82.    }
  83.  
  84.    public void Stop() {
  85.       this.appThread.stop();
  86.       this.appThread = null;
  87.    }
  88.  
  89.    public void update(Graphics var1) {
  90.       if (this.osImage == null) {
  91.          this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
  92.          this.osg = this.osImage.getGraphics();
  93.       }
  94.  
  95.       this.osg.setColor(((Component)this).getBackground());
  96.       this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
  97.       if (this.bkImage != null) {
  98.          int var2 = this.bkImage.getWidth(this);
  99.          int var3 = this.bkImage.getHeight(this);
  100.          int var4 = ((Component)this).size().width / var2;
  101.          int var5 = ((Component)this).size().height / var3;
  102.          ++var4;
  103.          ++var5;
  104.  
  105.          for(int var6 = 0; var6 < var5; ++var6) {
  106.             for(int var7 = 0; var7 < var4; ++var7) {
  107.                this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
  108.             }
  109.          }
  110.       }
  111.  
  112.       if (this.displayImage != null) {
  113.          int var8 = this.displayImage.getWidth((ImageObserver)null);
  114.          int var9 = this.displayImage.getHeight((ImageObserver)null);
  115.          int var11 = ((Component)this).size().width / 2 - var8 / 2;
  116.          int var13 = ((Component)this).size().height / 2 - var9 / 2;
  117.          this.osg.drawImage(this.displayImage, var11, var13, this);
  118.       }
  119.  
  120.       var1.drawImage(this.osImage, 0, 0, this);
  121.    }
  122.  
  123.    public void run() {
  124.       while(true) {
  125.          try {
  126.             ((Component)this).repaint();
  127.             Thread.sleep((long)this.delayTime);
  128.             this.UpdateImage();
  129.          } catch (InterruptedException var1) {
  130.          }
  131.       }
  132.    }
  133.  
  134.    public Dimension minimumSize() {
  135.       return new Dimension(10, 10);
  136.    }
  137.  
  138.    public Dimension preferredSize() {
  139.       return new Dimension(10, 10);
  140.    }
  141.  
  142.    public synchronized void reshape(int var1, int var2, int var3, int var4) {
  143.       super.reshape(var1, var2, var3, var4);
  144.       this.osImage = null;
  145.       this.osg = null;
  146.    }
  147.  
  148.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  149.       ((Component)this).repaint();
  150.       return true;
  151.    }
  152.  
  153.    void Initialize() {
  154.       if (this.image != null) {
  155.          this.imageWidth = this.image.getWidth(this);
  156.          this.imageHeight = this.image.getHeight(this);
  157.       }
  158.    }
  159.  
  160.    void UpdateImage() {
  161.       if (this.showMode == 0) {
  162.          this.showMode = 1;
  163.          this.currFadeInStep = 0;
  164.          this.delayTime = this.fadeInTime / this.fadeInSteps;
  165.          this.BuildFadeInImage();
  166.       } else if (this.showMode == 1) {
  167.          if (this.currFadeInStep < this.fadeInSteps) {
  168.             ++this.currFadeInStep;
  169.             this.BuildFadeInImage();
  170.          } else {
  171.             this.showMode = 3;
  172.             this.delayTime = this.showTime;
  173.             this.displayImage = this.image;
  174.          }
  175.       } else if (this.showMode == 3) {
  176.          this.showMode = 2;
  177.          this.currFadeOutStep = 0;
  178.          this.delayTime = this.fadeOutTime / this.fadeOutSteps;
  179.          this.BuildFadeOutImage();
  180.       } else {
  181.          if (this.showMode == 2) {
  182.             if (this.currFadeOutStep < this.fadeOutSteps) {
  183.                ++this.currFadeOutStep;
  184.                this.BuildFadeOutImage();
  185.                return;
  186.             }
  187.  
  188.             this.showMode = 0;
  189.             this.delayTime = this.hideTime;
  190.             this.displayImage = null;
  191.          }
  192.  
  193.       }
  194.    }
  195.  
  196.    void GetImagePixels() {
  197.       this.imagePixels = new int[this.imageWidth * this.imageHeight];
  198.       PixelGrabber var1 = new PixelGrabber(this.image, 0, 0, this.imageWidth, this.imageHeight, this.imagePixels, 0, this.imageWidth);
  199.  
  200.       try {
  201.          var1.grabPixels();
  202.       } catch (InterruptedException var3) {
  203.          System.out.println(((Throwable)var3).getMessage());
  204.       }
  205.    }
  206.  
  207.    void BuildFadeInImage() {
  208.       this.GetImagePixels();
  209.       this.displayImage = null;
  210.       if (this.currFadeInStep != this.fadeInSteps) {
  211.          int var1 = 0;
  212.  
  213.          for(int var2 = 0; var2 < this.imageWidth * this.imageHeight; ++var2) {
  214.             int var3 = this.imagePixels[var2];
  215.             int var4 = (var3 & -16777216) >> 24;
  216.             int var5 = (var3 & 16711680) >> 16;
  217.             int var6 = (var3 & '\uff00') >> 8;
  218.             int var7 = var3 & 255;
  219.             if (var1 <= this.currFadeInStep) {
  220.                this.imagePixels[var2] = (var4 << 24) + (var5 << 16) + (var6 << 8) + var7;
  221.             } else if (var1 > this.fadeInSteps) {
  222.                var1 = 0;
  223.             } else {
  224.                this.imagePixels[var2] = (var5 << 16) + (var6 << 8) + var7;
  225.             }
  226.  
  227.             ++var1;
  228.          }
  229.       }
  230.  
  231.       this.imageWidth = this.image.getWidth(this);
  232.       this.imageHeight = this.image.getHeight(this);
  233.       this.displayImage = ((Component)this).createImage(new MemoryImageSource(this.imageWidth, this.imageHeight, this.imagePixels, 0, this.imageWidth));
  234.    }
  235.  
  236.    void BuildFadeOutImage() {
  237.       this.GetImagePixels();
  238.       this.displayImage = null;
  239.       if (this.currFadeOutStep != this.fadeOutSteps) {
  240.          int var1 = 0;
  241.  
  242.          for(int var2 = 0; var2 < this.imageWidth * this.imageHeight; ++var2) {
  243.             int var3 = this.imagePixels[var2];
  244.             int var4 = (var3 & -16777216) >> 24;
  245.             int var5 = (var3 & 16711680) >> 16;
  246.             int var6 = (var3 & '\uff00') >> 8;
  247.             int var7 = var3 & 255;
  248.             if (var1 <= this.currFadeOutStep) {
  249.                this.imagePixels[var2] = (var5 << 16) + (var6 << 8) + var7;
  250.             } else {
  251.                this.imagePixels[var2] = (var4 << 24) + (var5 << 16) + (var6 << 8) + var7;
  252.             }
  253.  
  254.             if (var1 > this.currFadeOutStep) {
  255.                var1 = 0;
  256.             }
  257.  
  258.             ++var1;
  259.          }
  260.  
  261.          this.imageWidth = this.image.getWidth(this);
  262.          this.imageHeight = this.image.getHeight(this);
  263.          this.displayImage = ((Component)this).createImage(new MemoryImageSource(this.imageWidth, this.imageHeight, this.imagePixels, 0, this.imageWidth));
  264.       }
  265.  
  266.    }
  267. }
  268.